﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TestSystem.Domain.Entities.Questions;

namespace TestSystem.Domain.Abstract
{
    public interface IQuestionRepository
    {
        IQueryable<Question> Questions { get; }
        void AddQuestion(Question question);
        void RemoveQuestion(Question question);

        IQueryable<QuestionAttribute> QuestionAttributes { get; } 
        IQueryable<QuestionAttributeType> QuestionAttributeTypes { get; } 

        IQueryable<ChoiceQuestionAnwser> ChoiceQuestionAnwsers { get; }
        void AddChoiceQuestionAnwsers(IEnumerable<ChoiceQuestionAnwser> choiceQuestionAnwsers);
        void RemoveChoiceQuestionAnwsers(ChoiceQuestionAnwser choiceQuestionAnwser);

        IQueryable<OpenQuestionAnwser> OpenQuestionAnwsers { get; }
        void RemoveOpenQuestionAnwsers(OpenQuestionAnwser openQuestionAnwser);

        IQueryable<ChoiceAnwserType> ChoiceAnwserTypes { get; } 
        IQueryable<QuestionType> QuestionTypes { get; } 
        IQueryable<Difficulty> Difficulties { get; } 
    }
}
